package pers.xhh.frontapi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.multipart.MultipartFile;
import pers.xhh.frontapi.common.Mi;
import pers.xhh.frontapi.entity.MiUserEntity;
import pers.xhh.frontapi.entity.to.user.*;
import pers.xhh.frontapi.entity.vo.SocialUser;

import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * @author wei-xhh
 * @date 2020-11-22
 */
public interface MiUserService extends IService<MiUserEntity> {

    /**
     * 登录
     * @param miUserTo 参数
     * @return 结果
     */
    Mi login(MiUserLogin miUserTo);

    /**
     * 注册
     * @param miUserTo 参数
     * @return 结果
     */
    Mi register(MiUserTo miUserTo);

    /**
     * 查询用户
     * @return 结果
     */
    Mi getUser();

    /**
     * 编辑用户
     * @param miUserPutTo 参数
     * @return 结果
     */
    Mi putUser(MiUserPutTo miUserPutTo);

    /**
     * 微博登录
     * @param code 转发码
     * @return
     */
    Mi weibo(String code) throws Exception;

    Mi oauthLogin(SocialUser socialUser) throws Exception;

    /**
     * 修改密码
     * @param userPwd
     * @return
     */
    Mi updatePassword(UserPwd userPwd);

    /**
     * 上传头像
     * @param file
     * @return
     */
    Mi uploadAvatar(MultipartFile file) throws IOException;

    /**
     * 修改密码原密码验证
     * @param password
     * @return
     */
    boolean testPwd(String password);

    /**
     * 短信验证码
     * @param authTo
     * @return
     */
    Mi auth(AuthTo authTo) throws UnsupportedEncodingException, JsonProcessingException;

    /**
     * 找回密码
     * @param userFindPwd
     * @return
     */
    Mi findPwd(UserFindPwd userFindPwd);
}
